為了解決平面沒有物力現象的這個問題, 我們在這裡對平面做個設定
func createPlanePhysicsBody(geometry: SCNGeometry)) {
let physicsBody = SCNPhysicsBody(
type: .kinematic,
shape: SCNPhysicsShape(geometry: geometry,
options: nil))
physicsBody.restitution = 0.6
physicsBody.friction = 0.6
return physicsBody
}
這裏我們先創建了一個 kinematic 類型的 physics body, 接下來設定它的物理形狀, 系統會自動幫我們將這形狀設定為平面的樣子, 平面設定好後, 就可以對這平面進行物理上的設定(這裏僅設定它的恢復係數和摩擦力)
planeNode.physicsBody = createARPlanePhysics(
geometry: planeGeometry)
結合上篇對虛擬物件的設置, 我們已經對於要放置的虛擬物件和要放置的平面都加上了物理設定, 現在重新執行,我們可以將虛擬物件放在虛擬平面上而不會直接穿透過去了